# 使用OpenJDK 21作为基础镜像
FROM openjdk:21-jdk-slim

# 设置工作目录
WORKDIR /app

# 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 复制Maven构建文件
COPY pom.xml .
COPY study-parent/pom.xml study-parent/
COPY study-main/pom.xml study-main/
COPY study-pojo/pom.xml study-pojo/
COPY study-utils/pom.xml study-utils/

# 安装Maven
RUN apt-get update && apt-get install -y maven && rm -rf /var/lib/apt/lists/*

# 下载依赖（利用Docker缓存层）
RUN mvn dependency:go-offline -B

# 复制源代码
COPY study-parent/src study-parent/src
COPY study-main/src study-main/src
COPY study-pojo/src study-pojo/src
COPY study-utils/src study-utils/src

# 构建应用
RUN mvn clean package -DskipTests -B

# 创建上传目录
RUN mkdir -p /app/uploads

# 暴露端口
EXPOSE 10086

# 设置JVM参数
ENV JAVA_OPTS="-Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom"

# 启动应用
CMD ["sh", "-c", "java $JAVA_OPTS -jar study-main/target/study-main-1.0.0.jar"]